import { sum } from "./utils/math";
import axios from "axios";
import type { AxiosRequestConfig, AxiosInstance } from "axios";
import React from "react";
import _ from "lodash";
import KobeImage from "./img/kobe02.png";
import App from "./vue/App.vue";

const message: string = "Hello World";
console.log(message.length, message);
console.log(sum(20, 30));

// lib.dom.d.ts
const h2El = document.createElement("h2");
h2El.textContent = "Hello TypeScript";
document.body.append(h2El);

// lib.es2015.d.ts
const promise = new Promise((resolve, reject) => {});
console.log(message.startsWith("Hello"));

// axios

// lodash
console.log(_.join(["abc", "cba"]));

// 给自己的代码添加类型声明文件
// 平时使用的代码中用到的类型, 直接在当前位置进行定义或者在业务文件夹某一个位置编写一个类型文件即可
type IDType = number | string;
interface IKun {
  name: string;
  age: number;
  slogan: string;
}

const id1: IDType = 123;
// id1 = true

/**
 * 需要编写类型声明
 * 在type/why.d.ts 里声明有这些变量，才能直接用，不然需要在文件内声明这些变量，才能使用
 * declare 就是声明 哪些东西可以直接用，不要报错
 */
console.log(whyName, whyAge, whyHeight);
console.log(foo("why"));

const p = new Person("kobe", 30);
p.age;
console.log(p.name, p.age);

// 图片文件的使用
const imgEl = document.createElement("img");
imgEl.src = KobeImage;
document.body.append(imgEl);

// jquery
$.ajax({
  url: "http://codercba.com:8000/home/multidata",
  success: function (res: any) {
    console.log(res);
  },
});
